#!/usr/bin/env python
# -*- coding: utf-8 -*-

'a socket example which send echo message to server.'

import socket
import time

# s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# data = '24 01 01 00 ef 02 03 0f 00 01 02 03 01 08 04 08 02 03 03 02 02 03 04 4f 97 55 1a'
# data = '\x24\x01\x01\x00\xef\x02\x03\x0f\x00\x01\x02\x03\x01\x08\x04\x08\x02\x03\x03\x02\x02\x03\x04\x4f\x97\x55'
# data = '\x24\x01\x01\x01\x02\x03\x04\x00\x0f\x01\x02\x03\x04\x01\x03\x04\x00\x08\x00\x08\x02\x03\x09\x04\x08\x3c\x51\x55'
# 24010301020304003201020304100100010128090101081e00020101010101010101020202020202020203030303040404040505050506060606029ffe55
# data = '\x24\x01\x03\x01\x02\x03\x04\x00\x32\x01\x02\x03\x04\x10\x01\x00\x01\x01\x28\x09\x01\x01\x08\x1e\x00\x02\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x05\x05\x05\x05\x06\x06\x06\x06\x02\x9f\xfe\x55'
# 24010301020304003201020304100100070128090101081e000200000001f53f7aaf0000000b414ece5a0000000000000000000096000000460002582955
'''
data = '
起始符
\x24
系统类型
\x01
指令类型
\x03
SessionID
\x01\x02\x03\x04
数据长度
\x00\x32
集中器密码
\x01\x02\x03\x04
控制字段【控制标志】
\x10
控制字段【数据包信息（包总数或当前传输包序号）】
\x01
当前数据包帧号
\x00
流量计数量【集中器上挂的流量计总数】
\x01
流量计ID
\x01
流量计数据包长度
\x28
流量计数据：【时间信息】
\x09\x01\x01\x08\x1e\x00
流量计协议类型
\x02
流量计信息【工况累积量】
\x01\x01\x01\x01\x01\x01\x01\x01
流量计信息【标况累积量】
\x02\x02\x02\x02\x02\x02\x02\x02
流量计信息【工况流量】
\x03\x03\x03\x03
流量计信息【标况流量】
\x04\x04\x04\x04
流量计信息【温度】
\x05\x05\x05\x05
流量计信息【压力】
\x06\x06\x06\x06
流量计状态
\x02
crc
\x9f\xfe
结束符
\x55'
'''
# data = '\x24\x01\x03\x01\x02\x03\x04\x00\x32\x01\x02\x03\x04\x10\x01\x00\x07\x01\x28\x09\x01\x01\x08\x1e\x00\x02\x00\x00\x00\x01\xf5\x3f\x7a\xaf\x00\x00\x00\x0b\x41\x4e\xce\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x02\x58\x29\x55'
'''
data = '
起始符
\x24
系统类型
\x01
指令类型
\x03
SessionID
\x01\x02\x03\x04
数据长度
\x00\x32
集中器密码
\x01\x02\x03\x04
控制字段【控制标志】
\x10
控制字段【数据包信息（包总数或当前传输包序号）】
\x01
当前数据包帧号
\x00
流量计数量【集中器上挂的流量计总数】
\x01
流量计ID
\x01
流量计数据包长度
\x28
流量计数据：【时间信息】
\x09\x01\x01\x08\x1e\x00
流量计协议类型
\x02
流量计信息【工况累积量】
\x01\x01\x01\x01\x01\x01\x01\x01
流量计信息【标况累积量】
\x02\x02\x02\x02\x02\x02\x02\x02
流量计信息【工况流量】
\x03\x03\x03\x03
流量计信息【标况流量】
\x04\x04\x04\x04
流量计信息【温度】
\x05\x05\x05\x05
流量计信息【压力】
\x06\x06\x06\x06
流量计状态
\x02
crc
\x9f\xfe
结束符
\x55'
'''
# data = "\x24\x01\x01\x00\x00\x04\x57\x00\x0f\x00\x00\x04\x57\x31\x33\x34\x30\x38\x30\x38\x32\x33\x39\x34\x3d\x29\x55"
# data = "\x24\x01\x03\x01\x02\x03\x04\x00\x86\x01\x02\x03\x04\x10\x01\x00\x03\x01\x28\x09\x01\x01\x08\x1e\x00\x02\x00\x00\x00\x01\xf5\x3f\x7a\xaf\x00\x00\x00\x0b\x41\x4e\xce\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x02\x02\x28\x09\x01\x01\x08\x1e\x00\x00\x00\x00\x00\x01\xf5\x3f\x7a\xaf\x00\x00\x00\x0b\x41\x4e\xce\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x02\x03\x28\x09\x01\x01\x08\x1e\x00\x00\x00\x00\x00\x01\xf5\x3f\x7a\xaf\x00\x00\x00\x0b\x41\x4e\xce\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x02\x96\x90\x55"
# data = "\x24\x01\x03\x00\x00\x04\x57\x00\x5c\x00\x00\x04\x57\x10\x01\x13\x02\x01\x28\x09\x01\x01\x08\x37\x00\x01\x00\x00\x00\x00\x64\x54\x8d\xaf\x00\x00\x00\x00\x45\x53\xc3\x6a\x00\x01\xd5\x0e\x00\x01\x41\xfe\x00\x00\x15\xf0\x00\x00\x46\x00\x00\x02\x28\x09\x01\x01\x08\x37\x00\x01\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x00\x64\xd4\x55"
# data = "\x24\x01\x03\x00\x00\x04\x57\x00\x5c\xdc\x00\x00\x04\x57\x10\x01\x64\x02\x01\x28\x09\x01\x01\x5c\x8a\x22\x35\x01\x00\x00\x00\x01\xf6\x64\xe0\x26\x00\x00\x00\x01\x59\xe9\x34\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x56\x00\x00\x46\x00\x00\x02\x28\x09\x01\x01\x5c\x8a\x22\x35\x01\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x00\x42\xfc\x55"
# data = "\x24\x01\x03\x00\x00\x04\x57\x00\x5c\xdc\x00\x00\x04\x57\x10\x01\x57\x02\x01\x28\x09\x01\x01\x0f\x26\x0c\x01\x00\x00\x00\x02\x38\x02\xd2\xc1\x00\x00\x00\x01\x87\x49\xdd\x45\x00\x01\x8e\xb2\x00\x01\x11\x68\x00\x00\x16\x40\x00\x00\x46\x00\x00\x02\x28\x09\x01\x01\x0f\x26\x0c\x01\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x46\x00\x00\xa9\xa1\x55"
"""
data = "
起始符
\x24
系统类型
\x01
指令类型
\x03
SessionID
\x00\x00\x04\x57
数据长度
\x00\x5c
集中器密码
\x00\x00\x04\x57
控制字段
\x10\x01
当前数据包帧号
\x57
流量计数量
\x02
流量计ID
\x01
流量计数据包长度
\x28
时间信息
\x09\x01\x01\x0f\x26\x0c
流量计协议类型
\x01
流量计信息
工况累计量
\x00\x00\x00\x02\x38\x02\xd2\xc1
标况累计量
\x00\x00\x00\x01\x87\x49\xdd\x45
工况流量
\x00\x01\x8e\xb2
标况流量
\x00\x01\x11\x68
温度
\x00\x00\x16\x40
压力
\x00\x00\x46\x00
流量计状态
\x00
流量计ID
\x02
数据包长度
\x28
时间信息
\x09\x01\x01\x0f\x26\x0c
协议类型
\x01
工况累积量
\x00\x00\x00\x00\x00\x00\x00\xe5
标况累积量
\x00\x00\x00\x00\x00\x00\x00\x6d
工况流量
\x00\x00\x00\x00
标况流量
\x00\x00\x00\x00
温度
\x00\x00\x96\x00
压力
\x00\x00\x46\x00
状态
\x00
crc
\xa9\xa1
结束符
\x55"
"""
# data = "\x24\x01\x03\x00\x00\x04\x57\x00\x5c\xdc\x00\x00\x04\x57\x10\x01\xb0\x02\x01\x28\x09\x01\x01\x0c\x1d\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x12\x40\xba\x89\x7a\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x52\x39\xc0\x07\x46\x00\x00\x5c\x9b\x02\x28\x09\x01\x01\x0c\x1d\x00\x01\x00\x00\x00\x00\x0f\x6f\xd2\x27\x00\x00\x00\x00\x07\x63\xd1\xe0\x00\x00\x37\xd3\x00\x00\x5c\x9a\xb9\x00\x00\x96\x00\x00\x00\x46\x00\x00\x30\xdf\x55"
"""
起始符
\x24
系统类型
\x01
指令类型
\x03
SessionID
\x00\x00\x04\x57
数据长度
\x00\x5c
集中器密码
\x00\x00\x04\x57
控制字段
\x10\x01
当前数据包帧号
\xb0
流量计数量
\x02
流量计ID
\x01
流量计数据包长度
\x28
时间信息
\x09\x01\x01\x0c\x1d\x00
协议类型
\x02

\x00\x00\x00\x00\x00\x00\x00\x00\x12\x40\xba\x89\x7a\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x52\x39\xc0\x07\x46\x00\x00\x1b

\x02\x28\x09\x01\x01\x0c\x1d\x00\x01\x00\x00\x00\x00\x0f\x6f\xd2\x27\x00\x00\x00\x00\x07\x63\xd1\xe0\x00\x00\x37\xd3\x00\x00\x1a\xb9\x00\x00\x96\x00\x00\x00\x46\x00\x00\x30\xdf\x55
"""
# 发送数据:
# s.sendto(data, ('118.178.126.208', 9999))
# s.sendto(data, ('127.0.0.1', 9999))
# 接收数据:
# print s.recv(5120)
# s.close()
# data = "\x24\x01\x03\x00\x00\x00\x00\x00\x5c\xdc\x00\x00\x01\xe7\x10\x01\x0c\x02\x01\x28\x09\x01\x01\x08\x2e\x0e\x01\x00\x00\x00\x03\x1c\xb0\x8a\xfb\x00\x00\x00\x0c\x52\xfc\xc4\x7a\x00\x01\x8b\x8f\x00\x06\x09\x19\x00\x00\x0f\xd5\x00\x01\x84\x3f\x00\x02\x28\x09\x01\x01\x08\x2e\x0e\x01\x00\x00\x00\x0b\xa3\x7e\x68\x7a\x00\x00\x00\x31\x5a\xc6\x8a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x85\x00\x01\x86\x35\x00\xcc\xe9\x55"
data ="\x24\x01\x03\x00\x00\x00\x9b\x00\x5c\xdc\x00\x00\x00\x9b\x10\x01\x22\x02\x01\x28\x09\x01\x01\x0e\x5c\x9a\x3a\x01\x00\x00\x00\x26\x88\x95\x48\xa2\x00\x00\x00\xb6\xb1\x6a\xc5\x65\x00\x00\xfa\x8a\x00\x04\xda\x4c\x00\x00\x0f\x3d\x00\x01\xe9\xdc\x00\x02\x28\x09\x01\x01\x0e\x5c\x9a\x3a\x01\x00\x00\x00\x03\x44\xd6\xb4\x64\x00\x00\x00\x02\x92\x89\x37\x87\x00\x00\x06\xe8\x00\x00\x22\x56\x00\x00\x0e\x2e\x00\x01\xea\xc7\x00\x6f\x75\x55"
i = 1
while True:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # data = 'udp content...'
    s.sendto(data, ('127.0.0.1', 9999))
    print s.recv(5120)
    print 'i:',i
    s.close()
    break
    i+=1